home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Standards 1994 January / InfoMagic Standards - January 1994.iso / iso / 9660 / rockrdge / new / rrip.shr / rrip.nr < prev    next >
Text File  |  1993-08-11  |  37KB  |  1,053 lines

  1. .sp
  2. .H 1 "ROCK RIDGE INTERCHANGE PROTOCOL"
  3. .sp
  4. The Rock Ridge Interchange Protocol (RRIP) utilizes System Use Areas
  5. provided by ISO 9660:1988.
  6. The System Use Area of the Directory Record is used to record the POSIX
  7. file system information.
  8. The System Use Sharing Protocol is used for recording information in
  9. each of these areas.
  10. .sp
  11. .H 2 "System Use Fields Provided by this Specification"
  12. .sp
  13. The Rock Ridge Interchange Protocol defines the following fundamental 
  14. System Use Fields:
  15. .sp
  16. .TS
  17. center;
  18. l l.
  19. "PX"    POSIX file attributes
  20. "PN"    POSIX device modes
  21. "SL"    Symbolic link
  22. "NM"    Alternate name
  23. "CL"    Child link
  24. "PL"    Parent link
  25. "RE"    Relocated directory
  26. "TF"    Time stamp(s) for a file
  27. "SF"    File data is in sparse file format 
  28. .TE
  29. .sp
  30. Additionally, this specification provides required identification information
  31. to be recorded in an "ER" (Extensions Reference) System Use Field for the
  32. purpose of identifying discs on which the Rock Ridge Interchange Protocol
  33. is implemented.
  34. .sp
  35. .H 3 "Description of the PX System Use Field"
  36. .sp
  37. Recording of the "PX" System Use Field in the System Use Area of
  38. each ISO 9660 directory record shall be mandatory.
  39. No more than one
  40. "PX" System Use Field shall appear in (all) the System Use Area(s) for
  41. a single directory record.
  42. .sp
  43. If the file type in a directory record is of type directory, then
  44. the POSIX File Mode Field ([BP 4] in this section) and File Flags (ISO
  45. 9660 Format section 9.1.6) should both indicate such, with the
  46. exception of relocated directories, indicated by a "CL" field (section
  47. 3.1.5.1), for which the ISO file flags shall indicate a normal file,
  48. but the POSIX File Mode Field shall indicate a directory.
  49. .sp
  50. The format of the "PX" System Use Field is as follows:
  51. .sp
  52. .VL 10 5
  53. .LI "[1]"
  54. "BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
  55. is a "PX" type System Use Field.
  56. The bytes in this field shall be (50)(58) ("PX").
  57. .LI "[2]"
  58. "BP 3 - Length" shall specify as an 8-bit number the length in
  59. bytes of the "PX" System Use Field.
  60. The number in this field shall be 36 for this version.
  61. This field shall be recorded according to ISO 9660:1988 Format 
  62. section 7.1.1.
  63. .bp
  64. .LI "[3]"
  65. "BP 4 - System Use Field Version" shall specify as an 8-bit number an
  66. identification of the version of the "PX" System Use Field.
  67. The number in this field shall be 1 for this version.
  68. This field shall be recorded according to ISO 9660:1988 Format
  69. section 7.1.1.
  70. .LI "[4]"
  71. "BP 5 to BP 12 - POSIX File Mode" has the same meaning as the st_mode
  72. defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
  73. This field shall be recorded according to ISO 9660:1988 Format 
  74. section 7.3.3.
  75. The valid mask values for this field are combinations of the following:
  76. .sp
  77. .TS
  78. center;
  79. l l l.
  80. Octal Value       Mnemonic     Meaning
  81. \_    \_    \_
  82. 0000400    S_IRUSR    read permission (owner)
  83. 0000200    S_IWUSR    write permission (owner)
  84. 0000100    S_IXUSR    execute permission (owner)
  85. 0000040    S_IRGRP    read permission (group)
  86. 0000020    S_IWGRP    write permission (group)
  87. 0000010    S_IXGRP    execute permission (group)
  88. 0000004    S_IROTH    read permission (other)
  89. 0000002    S_IWOTH    write permission (other)
  90. 0000001    S_IXOTH    execute permission (other)
  91.       
  92. 0004000    S_ISUID    set user ID on execution
  93. 0002000    S_ISGID    set group ID on execution
  94. 0002000    S_ENFMT    enforced file locking (shared w/ set group ID)
  95. 0001000    S_ISVTX    save swapped text even after use
  96.       
  97. 0170000    S_IFMT    type of file
  98. 0140000    S_IFSOCK    socket
  99. 0120000    S_IFLNK    symbolic link
  100. 0100000    S_IFREG    regular
  101. 0060000    S_IFBLK    block special
  102. 0020000    S_IFCHR    character special
  103. 0040000    S_IFDIR    directory
  104. 0010000    S_IFIFO    pipe or FIFO
  105. .TE
  106. .sp
  107. .LI "[5]"
  108. "BP 13 to BP 20 - POSIX File Links" has the same meaning as the
  109. st_nlink defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
  110. If the file type described by the directory record is a
  111. directory, the value in this field shall equal the number of
  112. directories in the directory described by this directory record
  113. (i.e. any directory record which has the "directory" bit set,
  114. including the "." and ".." records).
  115. Otherwise, it shall be 1.
  116. This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
  117. .LI "[6]"
  118. "BP 21 to BP 28 - POSIX File User ID" has the same meaning as the
  119. st_uid defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
  120. This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
  121. .bp
  122. .LI "[7]"
  123. "BP 29 to BP 36 - POSIX File Group ID" has the same meaning as the
  124. st_gid defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
  125. This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
  126. .sp
  127. .sp
  128. .TB "PX System Use Field - Version 1"
  129. .TS
  130. center,box;
  131. c | c | c | c | c | c.
  132.                      
  133. 'P'    'X'    LENGTH    1    FILE MODE    LINKS
  134. (BP1)    (BP2)    (BP3)    (BP4)    (BP5 to BP12)    (BP13 to BP20)
  135.                      
  136. .TE
  137. .sp
  138. .TS
  139. center,box;
  140. c | c.
  141.       
  142. USER ID    GROUP ID
  143. (BP21 to BP28)    (BP29 to BP36)
  144.       
  145. .TE
  146. .sp
  147. .sp
  148. .sp
  149. .H 3 "Description of the PN System Use Field
  150. .sp
  151. This field is mandatory if the file type recorded in the "PX"
  152. File Mode field for the given directory record indicates a character or block
  153. device.
  154. This field, if present, should be ignored for all other file types.
  155. No more than one "PN" System Use Field shall appear in (all)
  156. the System Use Area(s) for a single directory record.
  157. .sp
  158. If the receiving system records device numbers as 32-bit numbers,
  159. only the "Dev_t Low" field shall be used. 
  160. If the receiving system records device numbers as 64-bit numbers,
  161. the "Dev_t High" and "Dev_t Low" fields shall be concatenated to make
  162. one 64-bit number. 
  163. .sp
  164. The format of the "PN" System Use Field is as follows:
  165. .sp
  166. .VL 10 5
  167. .LI "[1]"
  168. "BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
  169. is a "PN" type System Use Field.
  170. The bytes in this field shall be (50)(4E) ("PN").
  171. .LI "[2]"
  172. "BP 3 - Length" shall specify as an 8-bit number the length in
  173. bytes of the "PN" System Use Field.
  174. The number in this field shall be 20 for this version.
  175. This field shall be recorded according to ISO 9660:1988 Format 
  176. section 7.1.1.
  177. .LI "[3]"
  178. "BP 4 - System Use Field Version" shall specify as an 8-bit number an
  179. identification of the version of the "PN" System Use Field.
  180. The number in this field shall be 1 for this version.
  181. This field shall be recorded according to ISO 9660:1988 Format
  182. section 7.1.1.
  183. .bp
  184. .LI "[4]"
  185. "BP 5 to BP 12 - Dev_t High" shall contain as a 32-bit number
  186. the high order 32 bits of the device number.
  187. If the receiving system records device numbers as 32-bit numbers this field
  188. shall be zero and ignored.
  189. This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
  190. .LI "[5]"
  191. "BP 13 to BP 20 - Dev_t Low" shall contain as a 32-bit number
  192. the low order 32-bits of the device number.
  193. This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
  194. .LE
  195. .sp
  196. .sp
  197. .TB "PN System Use Field - Version 1"
  198. .TS
  199. center,box;
  200. c | c | c | c | c | c.
  201.                      
  202. 'P'    'N'    20    1    DEV_T HIGH    DEV_T LOW
  203. (BP1)    (BP2)    (BP3)    (BP4)    (BP5 to BP12)    (BP13 to BP20)
  204.                      
  205. .TE
  206. .sp
  207. .sp
  208. .sp
  209. .H 3 "Description of the SL System Use Field"
  210. .sp
  211. The purpose of the "SL" System Use Field is to store the content
  212. of a symbolic link.
  213. This System Use Field is mandatory if the file
  214. type recorded in the "PX" File Mode field for the given directory record
  215. indicates a symbolic link.
  216. For other file types, this System Use Field should be ignored.
  217. If the receiving system does not support symbolic links the system should
  218. invoke "Reader-Makes-Right".
  219. .sp
  220. If the file type recorded in the "PX" File Mode field for the given directory 
  221. record indicates a symbolic link, the directory record shall point to a file,
  222. the contents of which are not specified by this document.
  223. .sp
  224. If more than one "SL" System Use Field is recorded in the System
  225. Use Area(s) for a single directory record, the Component Area (see 
  226. section 4.1.3.1
  227. below) of each should be concatenated together, in the order in which
  228. they were recorded, until a CONTINUE flag with value zero is
  229. encountered (see [4] below), to obtain the entire set of Component
  230. Records for the symbolic link.
  231. .sp
  232. The method of recording is system independent.
  233. Under reader makes right, the receiving system is responsible for supplying
  234. appropriate values and/or notations for the component delimiter and
  235. special cases provided for below.
  236. .sp
  237. .bp
  238. The format of the "SL" System Use Field is as follows:
  239. .sp
  240. .VL 10 5
  241. .LI "[1]"
  242. "BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
  243. is a "SL" type System Use Field.
  244. The bytes in this field shall be (53)(4C) ("SL").
  245. .LI "[2]"
  246. "BP 3 - Length (LEN_SL)" shall specify as an 8-bit number the length in
  247. bytes of the "SL" System Use Field.
  248. The number in this field shall be 5 plus the length of the Component
  249. Area recorded in this "SL" field.
  250. This field shall be recorded according to ISO 9660:1988 Format 
  251. section 7.1.1.
  252. .LI "[3]"
  253. "BP 4 - System Use Field Version" shall specify as an 8-bit number an
  254. identification of the version of the "SL" System Use Field.
  255. The number in this field shall be 1 for this version.
  256. This field shall be recorded according to ISO 9660:1988 Format
  257. section 7.1.1.
  258. .LI "[4]"
  259. "BP 5 - Flags" shall contain bit field flags numbered 0
  260. to 7 starting with the least significant bit as follows:
  261. .sp
  262. .TS
  263. center;
  264. c c l.
  265. Position    Name    Interpretation if set to 1
  266. \_    \_    \_
  267. 0    CONTINUE    This Symbolic Link continues in next "SL"
  268. all others    RESERVED    value must be 0
  269. .TE
  270. .sp
  271. .LI "[5]"
  272. "BP 6 to LEN_SL - Component Records" shall contain Component Records
  273. (described below).
  274. .LE
  275. .sp
  276. .sp
  277. .TB "SL System Use Field - Version 1"
  278. .TS
  279. center,box;
  280. c | c | c | c | c | c.
  281.                           
  282. 'S'    'L'    LENGTH    1    FLAGS    COMPONENT RECORDS
  283. (BP1)    (BP2)    (BP3)    (BP4)    (BP5)    (BP6 to LEN_SL)
  284.                           
  285. .TE
  286. .sp
  287. .sp
  288. .sp
  289. .H 4 "Description of the SL System Use Field Component Record"
  290. .sp
  291. Within a "SL" System Use Field, each component of the pathname shall
  292. be recorded as one or more component records.
  293. A component does not contain the component separator (/ in POSIX).
  294. Recording a single component of a symbolic
  295. link may require multiple Component Records.
  296. If the component is greater than 255 bytes or will not fit into the current
  297. System Use Area or Continuation Area more than one Component Record will be
  298. recorded for the component.
  299. Multiple Component Records, specifying one or more separate components 
  300. of the symbolic link may be recorded in the Component Area of a 
  301. single "SL" field.
  302. .sp
  303. If a single Component Record is used to record a single component of a
  304. symbolic link, the CONTINUE flag must be set to zero.
  305. If multiple Component Records are used to record a single
  306. component of a symbolic link, the CONTINUE flag must be set to one in
  307. each Component Record except the last and zero in the last Component
  308. Record recording the given component.
  309. .sp
  310. Component Records shall be recorded contiguously within each
  311. Component Area, starting in the first byte of each Component Area.
  312. The last Component Record in the Component Area of an "SL" field may
  313. be continued in the Component Area of the next recorded "SL" field.
  314. .sp
  315. Each Component Record shall have the following format:
  316. .sp
  317. .VL 10 5
  318. .LI "[A]"
  319. "BP 1 - Component Flags" shall contain bit field flags numbered 0
  320. to 7 starting with the least significant bit as follows:
  321. .sp
  322. .TS
  323. center;
  324. c c l.
  325. Position    Name    Interpretation if set to 1
  326. \_    \_    \_
  327. 0    CONTINUE    Component recorded in this "SL" continues
  328.           in next "SL" Component Record
  329. 1    CURRENT    Component refers to the current directory 
  330.           (. in POSIX)
  331. 2    PARENT    Component refers to the parent of the 
  332.           current directory (.. in POSIX)
  333. 3    ROOT    Component refers to the root of the current 
  334.           directory tree for this process (/ in POSIX)
  335. 4    VOLROOT    Component refers to the directory the
  336.           current CD-ROM volume is mounted on
  337. 5    HOST    The local host name should be inserted as 
  338.           the value of the current component
  339. all others    RESERVED    value must be 0
  340. .TE
  341. .sp
  342. Bits 1 - 7 are mutually exclusive.
  343. .sp
  344. .LI "[B]"
  345. "BP 2 - Component Length (LEN_CP)" shall specify as an 8-bit number the
  346. length in bytes of the (portion of) the component recorded in the
  347. current Component Record.
  348. This length shall not include the Component Record Flags byte or Length byte.
  349. If any of the 
  350. 2\s-1\u1\d\s0 thru 2\s-1\u5\d\s0
  351. bits are set, the value of this field shall be zero.
  352. This field shall be recorded according to ISO 9660:1988 Format section 7.1.1.
  353. .sp
  354. .LI "[C]"
  355. "BP 3 to 2 + LEN_CP - Component" shall contain (the portion of) the component
  356. recorded in the current Component Record.
  357. The content of this field shall be recorded according to section 3.2 above.
  358. .LE
  359. .sp
  360. .sp
  361. .TB "SL System Use Field - Component Record"
  362. .TS
  363. center,box;
  364. c | c | c.
  365.            
  366. COMP_FLAGS    COMP_LEN    COMPONENT
  367. (BP1)    (BP2)    (BP3 to 2+LEN_CP)
  368.            
  369. .TE
  370. .sp
  371. .sp
  372. .bp
  373. .sp
  374. .H 3 "Description of the NM System Use Field"
  375. .sp
  376. The purpose of the "NM" System Use Field is to store the content
  377. of an Alternate Name to support POSIX-style or other names.
  378. This System Use Field is optional.
  379. If no "NM" field(s) are recorded for a
  380. specific directory record, the ISO 9660 file identifier shall be used.
  381. .sp
  382. If more than one "NM" System Use Field appears in (all) the
  383. System Use Area(s) for a single directory record, the contents ([5]
  384. below) of each should be concatenated together, in the order in which
  385. they were recorded, until a CONTINUE flag with value zero is
  386. encountered (see [4] below), to obtain the entire Alternate Name.
  387. .sp
  388. "NM" System Use Fields recorded for the ISO 9660 directory
  389. records with names (00) and (01), used to designate the current and
  390. parent directories, respectively, should be ignored.
  391. Instead, the receiving system should convert these names to the appropriate
  392. receiving system-dependent designations for the current and parent
  393. directories.
  394. .sp
  395. No sorting of the directory records by Alternate Names is
  396. specified by the RRIP, nor can one necessarily be imposed by
  397. originating systems or assumed by receiving systems.
  398. The ISO 9660 specifies a sorting order based upon the ISO 9660 file 
  399. identifier (see ISO 9660:1988, section 9.3).
  400. .sp
  401. The format of the "NM" System Use Field is as follows:
  402. .sp
  403. .VL 10 5
  404. .LI "[1]"
  405. "BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
  406. is a "NM" type System Use Field.
  407. The bytes in this field shall be (4E)(4D) ("NM").
  408. .LI "[2]"
  409. "BP 3 - Length (LEN_NAM)" shall specify as an 8-bit number the length in
  410. bytes of the "NM" System Use Field.
  411. The number in this field shall be 5 plus the length (of the portion)
  412. of the Alternate Name recorded in this "NM" field.
  413. This field shall be recorded according to ISO 9660:1988 Format 
  414. section 7.1.1.
  415. .LI "[3]"
  416. "BP 4 - System Use Field Version" shall specify as an 8-bit number an
  417. identification of the version of the "NM" System Use Field.
  418. The number in this field shall be 1 for this version.
  419. This field shall be recorded according to ISO 9660:1988 Format
  420. section 7.1.1.
  421. .bp
  422. .LI "[4]"
  423. "BP 5 - Flags" shall contain bit field flags numbered 0
  424. to 7 starting with the least significant bit as follows:
  425. .sp
  426. .TS
  427. center;
  428. c c l.
  429. Position    Name    Interpretation if set to 1
  430. \_    \_    \_
  431. 0    CONTINUE    Alternate Name continues in next "NM"
  432.           field
  433. 1    CURRENT    Alternate Name refers to the current
  434.           directory (. in POSIX)
  435. 2    PARENT    Alternate Name refers to the parent of
  436.           the current directory (.. in POSIX)
  437. 3    RESERVED    value must be 0
  438. 4    RESERVED    value must be 0
  439.           of the current CD-ROM volume
  440. 5    HOST    The local host name should be inserted as 
  441.           the value of the Alternate Name
  442. all others    RESERVED    value must be 0
  443. .TE
  444. .sp
  445. Bits 1 - 7 are mutually exclusive.
  446. .sp
  447. .LI "[5]"
  448. "BP 6 to LEN_NAM - Alternate Name" shall contain (a portion of) the 
  449. content of the Alternate Name.
  450. The content of this field shall be recorded according to section 3.2 above.
  451. .LE
  452. .sp
  453. .sp
  454. .TB "NM System Use Field - Version 1"
  455. .TS
  456. center,box;
  457. c | c | c | c | c | c.
  458.                           
  459. 'N'    'M'    LENGTH    1    FLAGS    ALTERNATE NAME
  460. (BP1)    (BP2)    (BP3)    (BP4)    (BP5)    (BP6 to LEN_NAM)
  461.                           
  462. .TE
  463. .sp
  464. .sp
  465. .sp
  466. .H 3 "System Use Fields for Handling Deep Directory Trees"
  467. .sp
  468. The ISO 9660:1988 mandates directory depths of no more than eight levels.
  469. Deeper directories must be reorganized to be recorded under the ISO 9660.
  470. The RRIP includes definitions of three System Use
  471. Fields to support logical reconstruction of deep directory trees while
  472. retaining complete ISO 9660 compliance.
  473. .sp
  474. For each specific directory, either all three of the following
  475. fields must be appropriately recorded, or none shall be recorded.
  476. .sp
  477. Table 9 and Table 10 at the end of this section have graphical examples
  478. of Deep Directory Trees.
  479. .bp
  480. .H 4 "Description of the CL System Use Field"
  481. .sp
  482. The purpose of the "CL" System Use Field is to record the new
  483. location of a directory which has been relocated.
  484. The field contains the Logical Block number of the Logical Sector in which 
  485. the first directory record of the moved Directory is stored.
  486. .sp
  487. The "CL" System Use Field is optional.
  488. If recorded, a "CL" System Use Field shall be recorded in the System Use 
  489. Area of a ISO 9660 directory record which describes a file which has the 
  490. same name as, and occupies the original position in the ISO 9660 directory tree
  491. of, the moved Directory.
  492. No more than one "CL" System Use Field shall appear in (all) the System Use 
  493. Area(s) for a single directory record.
  494. .sp
  495. Except for the ISO 9660 name, the Alternate Name (recorded in an
  496. "NM" System Use Field), and the new location of the Directory, all
  497. other information stored in the directory for this file should
  498. be ignored.
  499. The contents of this file are not specified by this document.
  500. All attributes of the moved Directory shall be recorded in the first directory 
  501. record ("dot" entry) of the moved Directory in its new location.
  502. .sp
  503. The format of the "CL" System Use Field is as follows:
  504. .sp
  505. .VL 10 5
  506. .LI "[1]"
  507. "BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
  508. is a "CL" type System Use Field.
  509. The bytes in this field shall be (43)(4C) ("CL").
  510. .LI "[2]"
  511. "BP 3 - Length" shall specify as an 8-bit number the length in
  512. bytes of the "CL" System Use Field.
  513. The number in this field shall be 12 for this version.
  514. This field shall be recorded according to ISO 9660:1988 Format 
  515. section 7.1.1.
  516. .LI "[3]"
  517. "BP 4 - System Use Field Version" shall specify as an 8-bit number an
  518. identification of the version of the "CL" System Use Field.
  519. The number in this field shall be 1 for this version.
  520. This field shall be recorded according to ISO 9660:1988 Format
  521. section 7.1.1.
  522. .LI "[4]"
  523. "BP 5 to BP 12 - Location of Child Directory" shall specify as a
  524. 32-bit number the Logical Block Number of the first Logical Block
  525. allocated to the moved directory.
  526. This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
  527. .LE
  528. .sp
  529. .sp
  530. .TB "CL System Use Field - Version 1"
  531. .TS
  532. center,box;
  533. c | c | c | c | c.
  534.                      
  535. 'C'    'L'    12    1    LOC of CHILD DIRECTORY
  536. (BP1)    (BP2)    (BP3)    (BP4)    (BP5 to BP12)
  537.                      
  538. .TE
  539. .sp
  540. .sp
  541. .bp
  542. .sp
  543. .H 4 "Description of the PL System Use Field"
  544. .sp
  545. The purpose of the "PL" System Use Field is to record the
  546. location of the original parent Directory of a Directory which has
  547. been relocated.
  548. The field contains the Logical Block number of the
  549. Logical Sector in which the first directory record of the original
  550. parent Directory of said moved Directory is stored.
  551. .sp
  552. For each moved Directory which is recorded using a "CL" System
  553. Use Field, a corresponding "PL" System Use Field is required.
  554. The "PL" System Use Field shall be recorded in the System Use Area of the
  555. second directory record ("dot-dot" entry) of the moved Directory.
  556. No more than one "PL" System Use Field shall appear in (all) the System
  557. Use Area(s) for a single directory record.
  558. .sp
  559. The format of the "PL" System Use Field is as follows:
  560. .sp
  561. .VL 10 5
  562. .LI "[1]"
  563. "BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
  564. is a "PL" type System Use Field.
  565. The bytes in this field shall be (50)(4C) ("PL").
  566. .LI "[2]"
  567. "BP 3 - Length" shall specify as an 8-bit number the length in
  568. bytes of the "PL" System Use Field.
  569. The number in this field shall be 12 for this version.
  570. This field shall be recorded according to ISO 9660:1988 Format 
  571. section 7.1.1.
  572. .LI "[3]"
  573. "BP 4 - System Use Field Version" shall specify as an 8-bit number an
  574. identification of the version of the "PL" System Use Field.
  575. The number in this field shall be 1 for this version.
  576. This field shall be recorded according to ISO 9660:1988 Format
  577. section 7.1.1.
  578. .LI "[4]"
  579. "BP 5 to BP 12 - Location of Parent Directory" shall specify as a
  580. 32-bit number the Logical Block Number of the first Logical Block
  581. allocated to the original parent directory of the moved directory.
  582. This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
  583. .LE
  584. .sp
  585. .sp
  586. .TB "PL System Use Field - Version 1"
  587. .TS
  588. center,box;
  589. c | c | c | c | c.
  590.                      
  591. 'P'    'L'    12    1    LOC of PARENT DIRECTORY
  592. (BP1)    (BP2)    (BP3)    (BP4)    (BP5 to BP12)
  593.                      
  594. .TE
  595. .sp
  596. .sp
  597. .bp
  598. .sp
  599. .H 4 "Description of the RE System Use Field"
  600. .sp
  601. The purpose of the "RE" System Use Field is to indicate to a
  602. receiving system which can understand the System Use Fields "CL" and
  603. "PL" that the directory record in which this "RE" System Use Field is
  604. recorded has been relocated from another position in the original
  605. directory tree.
  606. .sp
  607. An "RE" System Use Field shall not be recorded unless a corresponding 
  608. "CL" System Use Field is recorded.
  609. If recorded, a "RE" System Use Field shall be recorded in
  610. the System Use Area of the directory record which describes the moved
  611. Directory in the new parent directory of the moved Directory.
  612. .sp
  613. The format of the "RE" System Use Field is as follows:
  614. .sp
  615. .VL 10 5
  616. .LI "[1]"
  617. "BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
  618. is a "RE" type System Use Field.
  619. The bytes in this field shall be (52)(45) ("RE").
  620. .LI "[2]"
  621. "BP 3 - Length" shall specify as an 8-bit number the length in
  622. bytes of the "RE" System Use Field.
  623. The number in this field shall be 4 for this version.
  624. This field shall be recorded according to ISO 9660:1988 Format 
  625. section 7.1.1.
  626. .LI "[3]"
  627. "BP 4 - System Use Field Version" shall specify as an 8-bit number an
  628. identification of the version of the "RE" System Use Field.
  629. The number in this field shall be 1 for this version.
  630. This field shall be recorded according to ISO 9660:1988 Format
  631. section 7.1.1.
  632. .LE
  633. .sp
  634. .sp
  635. .TB "RE System Use Field - Version 1"
  636. .TS
  637. center,box;
  638. c | c | c | c.
  639.                      
  640. 'R'    'E'    4    1
  641. (BP1)    (BP2)    (BP3)    (BP4)
  642.                      
  643. .TE
  644. .sp
  645. .sp
  646. .bp
  647. .sp
  648. .TB "Deep Directory Relocation"
  649. .sp
  650. .sp
  651. .PS
  652. .ft 3
  653. arrowhead = 7
  654. box "1"
  655. circle invis "(root)"
  656.  
  657. box "2a" at 1st box + (-2.5, -1.0)
  658. box "2b" at 1st box + (-1.5, -1.0)
  659. box "2c" at 1st box + (-.50, -1.0)
  660. line from bottom of 1st box to top of 2nd box
  661. line from bottom of 1st box to top of 3rd box
  662. line from bottom of 1st box to top of 4th box
  663.  
  664. box "3" at 4th box + (-.50, -1.0)
  665. line from bottom of 4th box to top of 5th box 
  666.  
  667. box "4" at 5th box + (-.50, -1.0)
  668. box "8" at 5th box + (1.50, -1.0)
  669. circle "\"RE\"" invis
  670. line from bottom of 5th box to top of 6th box 
  671. line from bottom of 5th box to top of 7th box 
  672. line from bottom of 7th box  down .4 left .5 
  673. line from bottom of 7th box  down .4 right .5 
  674.  
  675. box "5" at 6th box + (-.50, -1.0)
  676. line from bottom of 6th box to top of 8th box 
  677.  
  678. box "6" at 8th box + (-.50, -1.0)
  679. line from bottom of 8th box to top of 9th box 
  680.  
  681. box "7" at 9th box + (-.50, -1.0)
  682. line from bottom of 9th box to top of 10th box 
  683.  
  684. ellipse "file" at 10th box + (-.50, -1.0)
  685. line from bottom of 10th box to top of 1st ellipse 
  686.  
  687. arc -> from 1st ellipse + (.40, 0.0) to 7th box + (.20, -.55)
  688. arc -> cw from 7th box + (-.20, -.55) to 10th box + (.40, 0.0) rad 3
  689. circle invis "\"PL\"" at 8th box + (1.35, -1.0)
  690. circle invis "\"CL\"" at 8th box + (2.55, -1.0)
  691. .ft 1
  692. .PE
  693. .bp
  694. .TB "Detailed Deep Directory Relocation"
  695. .sp
  696. .sp
  697. .PS
  698. .ft 3
  699. move right 1.0
  700. A: box invis  ht 0.2 wid 2.25 ; "   directory foo/ " at A.w ljust
  701. Aa: box ht 0.2 wid 1.5 with .nw at A.sw ; "   \"dot\"" at Aa.w ljust
  702. Ab: box ht 0.2 wid .75 with .sw at Aa.se ; "   rrip..." at Ab.w ljust
  703. Ac: box ht 0.2 wid 1.5 with .nw at Aa.sw ; "   \"dotdot\"" at Ac.w ljust
  704. Ad: box ht 0.2 wid .75 with .sw at Ac.se ; "   rrip..." at Ad.w ljust
  705. B: box ht 0.2 wid 1.5 with .nw at Ac.sw ; "   bar" at B.w ljust
  706. C: box ht 0.2 wid .75 with .sw at B.se ; "   rrip..." at C.w ljust
  707. F: box ht 0.2 wid 1.5 with .nw at B.sw ; "   hidden_baz" at F.w ljust
  708. G: box ht 0.2 wid .75 with .sw at F.se ; "   RE" at G.w ljust
  709. H: box ht 0.2 wid 1.5 with .nw at F.sw ; "   lower" at H.w ljust
  710. U: box ht 0.2 wid .75 with .sw at H.se ; "   rrip..." at U.w ljust
  711.  
  712. move down .4
  713. move right 2.0
  714. Y: box invis ht .2 wid .75 ; "   " at Y.w ljust
  715. X: ellipse ht .4 wid .75 with .nw at Y.sw "File"
  716.  
  717. move down .75
  718. move left 1.5
  719. I: box invis ht 0.2 wid 1.5 ; "   directory lower/" at I.w ljust
  720. J: box ht 0.4 wid 2.55 with .nw at I.sw ; "          " at J.w ljust
  721. K: box ht 0.2 wid .85 with .nw at J.sw ; "   empty_baz" at K.w ljust
  722. L: box ht 0.2 wid .85 with .sw at K.se ; "   NM \"baz\"" at L.w ljust
  723. M: box ht 0.2 wid .85 with .sw at L.se ; "   CL" at M.w ljust
  724.  
  725. move down .75
  726. move left .25
  727. Z: ellipse ht .4 wid .75 " File"
  728.  
  729. move down .75
  730. N: box invis ht 0.2 wid 2.0 ; "  directory baz/ " at N.w ljust
  731. O: box ht 0.2 wid 1.0 with .nw at N.sw ; "  \"dot\"" at O.w ljust
  732. P: box ht 0.2 wid 1.0 with .sw at O.se ; "  rrip..." at P.w ljust
  733. Q: box ht 0.2 wid 1.0 with .nw at O.sw ; "  \"dotdot\"" at Q.w ljust
  734. R: box ht 0.2 wid 1.0 with .sw at Q.se ; "  PL" at R.w ljust
  735. S: box ht 0.2 wid 1.0 with .nw at Q.sw ; "  " at S.w ljust
  736. T: box ht 0.2 wid 1.0 with .sw at S.se ; "  " at T.w ljust
  737.  
  738. .\" BAR->FILE
  739. arc <- from X.n to C.e rad 2.0
  740.  
  741. .\" HIDDEN_BAZ->DIR_BAZ
  742. arc -> from F.w to O.w 
  743.  
  744. .\" LOWER->DIR_LOWER
  745. arc -> cw from H.c to J.n rad 3
  746.  
  747. .\" EMPTY_BAZX->EMPTY_FILE
  748. arc -> from K.s to Z.nw rad 3
  749.  
  750. .\" CL->DIR_BAZ
  751. arc -> cw from M.c to P.n rad 2
  752.  
  753. .\" PL->DIR_LOWER
  754. arc -> from R.c to J.ne rad .05
  755.  
  756. .ft 1
  757. .PE
  758. .bp
  759. .sp
  760. .sp
  761. .H 3 "Description of the TF System Use Field"
  762. .sp
  763. The purpose of the "TF" System Use Field is to allow the
  764. recording of a complete set of time stamps related to a file.
  765. This System Use Field shall be optional.
  766. If this field does not exist, the
  767. POSIX st_atime, st_ctime and st_mtime should have the same value as
  768. Recording Date and Time Field of the ISO 9660:1988 directory record.
  769. If both the "TF" System Use Field and the XAR are present, the time
  770. attributes stored in these two areas must be consistent.
  771. If only the XAR is present, the st_atime should have the same value as the
  772. Recording Date and Time Field of the ISO 9660 directory record.
  773. .sp
  774. Multiple "TF" fields may be recorded, using any combination of time
  775. stamps and time formats, but each individual time stamp may be recorded
  776. only once per directory record.
  777. .sp
  778. The format of the "TF" System Use Field is as follows:
  779. .sp
  780. .VL 12 5 
  781. .LI "[1]"
  782. "BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
  783. is a "TF" type System Use Field.
  784. The bytes in this field shall be (54)(46) ("TF").
  785. .LI "[2]"
  786. "BP 3 - Length" shall specify as an 8-bit number the length in
  787. bytes of the "TF" System Use Field.
  788. This field shall be recorded according to ISO 9660:1988 Format 
  789. section 7.1.1.
  790. .LI "[3]"
  791. "BP 4 - System Use Field Version" shall specify as an 8-bit number an
  792. identification of the version of the "TF" System Use Field.
  793. The number in this field shall be 1 for this version.
  794. This field shall be recorded according to ISO 9660:1988 Format
  795. section 7.1.1.
  796. .LI "[4]"
  797. "BP 5 - Flags" shall contain bit field flags numbered 0
  798. to 7 starting with the least significant bit as follows:
  799. .sp
  800. .TS
  801. center;
  802. c c l.
  803. Position    Name    Interpretation if set to 1
  804. \_    \_    \_
  805. 0    CREATION    Creation time recorded
  806. 1    MODIFY    Modification time recorded
  807. 2    ACCESS    Last Access time recorded
  808. 3    ATTRIBUTES    Last Attribute Change time recorded
  809. 4    BACKUP    Last Backup time recorded
  810. 5    EXPIRATION    Expiration time recorded
  811. 6    EFFECTIVE    Effective time recorded
  812. 7    LONG_FORM    ISO 9660 17-byte time format used
  813. .TE
  814. .sp
  815. If the LONG_FORM bit is set to one, all time stamps in this "TF"
  816. System Use Field shall be recorded using the format specified in
  817. Section 8.4.26.1 of ISO 9660:1988.
  818. If the LONG_FORM bit is set to zero, all time stamps in this "TF" 
  819. System Use Field shall be recorded
  820. using the format specified in Section 9.1.5 of ISO 9660:1988.
  821. .LI "[4+N]"
  822. "BP 6+(X*(N-1)) to 5+(X*N) Time Stamp" shall contain the Nth time
  823. stamp indicated in [4] as being recorded, starting with the 0th
  824. bit and working sequentially through the list of recordable time stamps.
  825. The LONG_FORM bit does not indicate the presence or
  826. absence of any time stamp.
  827. The value of X in the expression above
  828. shall be 17 if the LONG_FORM bit is set to 1, and 7 otherwise.
  829. .LE
  830. .bp
  831. .sp
  832. The recorded time for each of the time stamps recorded in this
  833. field shall be local time.
  834. if recorded, CREATION, Creation Time, has the same meaning as in
  835. ISO 9660:1988 Format section 9.5.4.
  836. .sp
  837. If recorded, MODIFY, File Modification Date and Time, has the
  838. same meaning as in ISO 9660:1988 Format section 9.5.5.
  839. This field shall be used by the st_mtime for POSIX conformance.
  840. .sp
  841. If recorded, ACCESS, File Last Access Date and Time, shall
  842. specify the date and time of the day at which the information in the
  843. file was last accessed.
  844. This field shall be used by the st_atime for POSIX conformance.
  845. .sp
  846. If recorded, ATTRIBUTES, Last Attribute Change Time,
  847. shall be used by the st_ctime field for POSIX conformance.
  848. .sp
  849. If recorded, BACKUP, Last Backup Time, shall provide a time stamp
  850. for the most recent backup of this file.
  851. The utilization of this information is not restricted by this specification.
  852. .sp
  853. If recorded, EXPIRE, File Expiration Date and Time, has the same
  854. meaning as in ISO 9660:1988 Format section 9.5.6.
  855. .sp
  856. If recorded, EFFECT File Effective Date and Time" has the same
  857. meaning as in ISO 9660:1988 Format section 9.5.7.
  858. .sp
  859. .sp
  860. .TB "TF System Use Field - Version 1"
  861. .TS
  862. center,box;
  863. c | c | c | c | c | c.
  864.                           
  865. 'T'    'F'    LENGTH    1    FLAGS    TIME STAMPS
  866. (BP1)    (BP2)    (BP3)    (BP4)    (BP5)    (BP6 to LENGTH)
  867.                           
  868. .TE
  869. .sp
  870. .sp
  871. .sp
  872. .H 3 "Description of the SF System Use Field"
  873. .sp
  874. The purpose of the "SF" System Use Field is to indicate that the 
  875. file identified by the current directory record is stored as a "sparse" 
  876. file, and to provide additional information which is necessary to
  877. retrieve the file contents.
  878. This System Use Field (and sparse file encoding) is optional.
  879. No more than one "SF" System Use Field shall
  880. appear in (all) the System Use Area(s) for a single directory record.
  881. .sp
  882. The "SF" field is specifically designed to provide support for the 
  883. encoding and delivery of Unix-style sparse files in a platform-independent 
  884. manner. The sparse file encoding allocates physical blocks only if the 
  885. block actually contains non-zero data.
  886. .bp
  887. .sp
  888. The format of the "SF" System Use Field is as follows:
  889. .sp
  890. .VL 10 5
  891. .LI "[1]"
  892. "BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
  893. is a "SF" type System Use Field.
  894. The bytes in this field shall be (53)(46) ("SF").
  895. .LI "[2]"
  896. "BP 3 - Length" shall specify as an 8-bit number the length in
  897. bytes of the "SF" System Use Field.
  898. The number in this field shall be 12 for this version.
  899. This field shall be recorded according to ISO 9660:1988 Format 
  900. section 7.1.1.
  901. .LI "[3]"
  902. "BP 4 - System Use Field Version" shall specify as an 8-bit number an
  903. identification of the version of the "SF" System Use Field.
  904. The number in this field shall be 1 for this version.
  905. This field shall be recorded according to ISO 9660:1988 Format
  906. section 7.1.1.
  907. .LI "[4]"
  908. "BP 5 to BP 12 - Virtual File Size" shall specify as a 32-bit
  909. number the apparent size of the recorded data file, i.e. the size of the
  910. file as reported on the originating (Unix) file system, or the offset
  911. from the beginning of the file to the last application-addressable byte
  912. in the file.  This field shall be recorded according to the ISO
  913. 9660:1988 Format section 7.3.3.
  914. .LE
  915. .sp
  916. .sp
  917. .TB "SF System Use Field - Version 1"
  918. .TS
  919. center,box;
  920. c | c | c | c | c.
  921.                      
  922. 'S'    'F'    LENGTH    1    VIRTUAL FILE SIZE
  923. (BP1)    (BP2)    (BP3)    (BP4)    (BP5 to BP12)
  924.                      
  925. .TE
  926. .sp
  927. .H 4 "Encoding and Recording of Sparse Files"
  928. .sp
  929. Sparse Files are encoded within the File Section as specified in section
  930. 6.4.4.2 of the ISO 9660:1988.  The directory record Data Length as specified
  931. in section 9.1.4 of the ISO 9660:1988 shall specify the length of the file 
  932. section, including the SF Header Block, all Index Blocks, and the sparse file
  933. data. 
  934. .sp
  935. The initial (number 0) 2K byte block of the File Section shall be an 
  936. SF Header Block.
  937. .sp
  938. The format of the SF Header Block is identical to the format of the
  939. SF System Use Field. All unused bytes in the SF header block shall be
  940. set to binary zero (0).
  941. .sp
  942. The second (number 1) 2K byte block of the File Section shall be the 
  943. first Index Block.
  944. Each Index Block of an the encoded file shall hold 256 table entries.
  945. .sp
  946. Each Table Entry of an Index Block shall be eight bytes, recording
  947. a 32 bit number as specified in section 7.3.3 of the ISO 9660:1988.
  948. The value of each Table Entry is interpreted as a set of bit fields 
  949. numbered 0 to 31 starting with the least significant bit as follows:
  950. .TS
  951. center;
  952. c c l.
  953. Bits    Name    Interpretation if set to 1
  954. \_    \_    \_
  955. 0-23    BLOCK    24 bit logical block number. 
  956.         If the TABLE bit is set, this number is the 2K byte block 
  957.           offset from the first block of the File Section to 
  958.           the next block of table entries. 
  959.         If the TABLE bit is not set, this number is the 256 byte 
  960.           block offset from the first block of the File Section
  961.           to the first block of data referenced by this 
  962.           Table Entry.
  963.         If the ZERO bit is set, this block number must be zero.
  964. 24-29    RESERVED    value must be 0. 
  965. 30    TABLE    This Table Entry's BLOCK pointer references a 2K block of 
  966.         256 Table Entries.
  967. 31    ZERO    This Table Entry specifies a file extent of data containing 
  968.         only zeros.
  969. .TE
  970. The TABLE and ZERO bits are mutually exclusive.
  971. .sp
  972. Each Table Entry of the first Index Block corresponds to the high-order 
  973. byte of a 32 bit, linearly addressed file position. 
  974. Any Table Entry in the first Index Block which has the TABLE bit set, has
  975. a block pointer which refers to a logical 2K block (relative to the 
  976. File Section) containing a second tier Index Block. Any Table Entry
  977. with the ZERO bit set represents a logical file region of 16M bytes of zeros.
  978. If the TABLE bit and the ZERO bit are both zero, then the BLOCK field of the 
  979. Table Entry is a pointer
  980. to the first logical block of a contiguous 16M byte region of data.
  981. .sp
  982. Each Table Entry of a second tier Index Block corresponds to the second
  983. most significant byte of a 32 bit, linearly addressed file position.
  984. Any Table Entry in a second tier Index Block which
  985. has the TABLE bit set, has a block pointer which refers to a logical
  986. 2K block (relative to the File Section) containing a third tier Index
  987. Block. Any Table Entry with the ZERO bit set represents a logical file region
  988. of 64K bytes of zeros.
  989. If the TABLE bit and the ZERO bit are both zero, then the BLOCK field of the 
  990. Table Entry is a pointer
  991. to the first logical block of a contiguous 64K byte region of data.
  992. .sp
  993. Each Table Entry of a third tier Index Block corresponds to the third 
  994. most significant byte of a 32 bit, linearly addressed file position. 
  995. The block pointer refers to a logical
  996. 256 byte block (relative to the File Section) which contains 256 bytes
  997. of actual data.  A Table Entry with the ZERO bit set represents a logical 
  998. file region of 256 bytes of zeros. No Table Entry in a third tier Index Block 
  999. may have the TABLE bit set. 
  1000. If the TABLE bit and the ZERO bit are both zero, then the BLOCK field of the 
  1001. Table Entry is a pointer
  1002. to the first logical block of a contiguous 256 byte region of data.
  1003. .sp
  1004. The positions of these 256 byte data blocks shall be numbered
  1005. with data block number 0 being coincident with the first 256 bytes of
  1006. block 0 of the encoded file.  Thus the first 2K byte block of the file,
  1007. which actually holds the high-order byte addressing table, would consume
  1008. data block positions 0 to 3, and data block 495 (= 123*4 + 3) would be
  1009. bytes 768 to 1023 located in the 123rd physical 2K byte block of the
  1010. encoded file.  Though the data may be efficiently recorded in
  1011. sequentially numbered blocks, ordered according to increasing address of
  1012. the recorded data, this is not required.
  1013. .sp
  1014. The second and third tier index blocks (if needed) may be recorded 
  1015. in sequentially numbered blocks, after the first index block, but before the 
  1016. first data block, although this is not required.
  1017. .sp
  1018. .sp
  1019. .sp
  1020. .H 2 "Required Recording and Consistency"
  1021. .sp
  1022. The "PX" System Use Fields shall be recorded in every directory
  1023. record.
  1024. All recorded instances of the "PX" and "TF" System Use Fields
  1025. in directory records referring to a single directory must be
  1026. consistent.
  1027. .bp
  1028. .sp
  1029. .H 2 "Specification of the ER System Use Field Values for RRIP"
  1030. .sp
  1031. The Extension Version number for the version of the RRIP defined
  1032. herein shall be 1.
  1033. The content of the Extension Identifier field shall be "RRIP_1991A".
  1034. The Identifier Length shall be 10.
  1035. .sp
  1036. The recommended content of the Extension Descriptor shall be "THE
  1037. ROCK RIDGE INTERCHANGE PROTOCOL PROVIDES SUPPORT FOR POSIX FILE SYSTEM
  1038. SEMANTICS."
  1039. The corresponding Description Length is 84.
  1040. .sp
  1041. The recommended content of the Extension Source shall be "PLEASE
  1042. CONTACT DISC PUBLISHER FOR SPECIFICATION SOURCE.  SEE PUBLISHER
  1043. IDENTIFIER IN PRIMARY VOLUME DESCRIPTOR FOR CONTACT INFORMATION."
  1044. The corresponding Source Length is 135.
  1045. .sp
  1046. .bp
  1047. .\" Blank page for back of this chapter
  1048. .ce 
  1049.        
  1050.         
  1051.        
  1052.          
  1053.